#include <stdio.h>
#include <stdlib.h>
#include <csp_spu.h>
#include <csp_debug.h>


#define CHANNEL_NAME 42


int global_pid; 


int Run(){
	int pid = csp_pid();

	global_pid = csp_pid();

	int n __attribute__ ((aligned(16)));
	int i = 0;


	csp_channel o2o =
		csp_create_channel(ONE2ONE_CHANNEL, CHANNEL_NAME, sizeof(int));

	//csp_timing_start();
	
	while( i < 10 ){

		csp_channel_read(o2o, &n);

		ASSERT( n == i );

		printf("Recieved number: %i\n", n);

		i++;
	}
	

	//csp_timing_stop();

	ASSERT( pid == csp_pid() );
	ASSERT( global_pid == csp_pid() );

	PRINTF_FOR_TESTING("%s terminating on spe #%i with pid %i\n",__FILE__ , csp_spe_id(), pid);

	PRINTF_FOR_TESTING("Nested task with pid=%i terminated with res=%i.\n", pid, res);

	return 0;
}
